Skip to content
This repository has been archived by the owner on Feb 19, 2021. It is now read-only.

docs(readme): Document automatic setup #15

Merged
merged 4 commits into from
Dec 30, 2016
Merged

Conversation

nicojs
Copy link
Member

@nicojs nicojs commented Dec 30, 2016

Document how to use the new automatic setup using the karmaConfigFile option.

@nicojs nicojs requested a review from philippw December 30, 2016 09:11
Copy link
Contributor

@philippw philippw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better wording suggestions


## Peer dependencies

The `stryker-karma-runner` is a pluggin for `stryker` to enable `karma` as a test runner. As such you should install the correct versions of the dependencies:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stryker-karma-runner is a plugin for stryker to enable karma as a test runner. As such, you should make sure you have the correct versions of it's dependencies installed:


## Warning

The stryker-karma-runner is available from stryker v0.4.0 onward.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The stryker-karma-runner is available starting with Stryker 0.4.0.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll remove it entirely. Nobody should use stryker < 0.4 ;)


## Install

Install stryker-karma-runner from your project folder:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Install stryker-karma-runner locally within your project folder, like so:


## Configuring

You can either configure the karma test runner from the `stryker.conf.js` file or from the command line. This readme describes how to do it via the config file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This README describes how to do use the stryker.conf.js config file.


You can either configure the karma test runner from the `stryker.conf.js` file or from the command line. This readme describes how to do it via the config file.

### Load the plugin
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Loading the plugin

*Note*: Whichever testFramework you use should also be reflected in the `testFramework` property of stryker itself. For example: `testFramework: 'mocha'`

Not all karma config can be overriden, as Stryker requires specific functionality from the testRunner to do its magic.
Karma config that *cannot* be overriden:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following Karma config options cannot be overridden:

Not all karma config can be overriden, as Stryker requires specific functionality from the testRunner to do its magic.
Karma config that *cannot* be overriden:

* `files`: The karma-runner will fill this based on the `files` and `filesToMutate` configuration in the `stryker-conf.js` file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • files: The karma-runner will set this option based on the files and filesToMutate configuration in the stryker-conf.js file.

Karma config that *cannot* be overriden:

* `files`: The karma-runner will fill this based on the `files` and `filesToMutate` configuration in the `stryker-conf.js` file.
* `coverageReporter`: This will be enabled for the initial test run, disabled for testing the mutants.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • coverageReporter: This will be enabled for the initial test run but disabled for testing the mutants.


### Debugging

By default, karma logging will be swallowed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we' re running karma in it's own process, its logging output will be consumed by us.

### Debugging

By default, karma logging will be swallowed.
Set log level to `trace` in `stryker.conf.js` to see all the karma output.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid this, set the log level to trace in stryker.conf.js.


```bash
npm i --save-dev stryker-karma-runner
```

## Peer dependencies

The `stryker-karma-runner` is a pluggin for `stryker` to enable `karma` as a test runner. As such you should install the correct versions of the dependencies:
The `stryker-karma-runner` is a pluggin for `stryker` to enable `karma` as a test runner.
Copy link
Contributor

@philippw philippw Dec 30, 2016

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plugging -> plugin


```bash
npm i --save-dev stryker-karma-runner
```

## Peer dependencies

The `stryker-karma-runner` is a pluggin for `stryker` to enable `karma` as a test runner. As such you should install the correct versions of the dependencies:
The `stryker-karma-runner` is a pluggin for `stryker` to enable `karma` as a test runner.
As such, you should make sure you have the correct versions of it's dependencies installed:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its

@@ -33,24 +30,25 @@ These are marked as `peerDependencies` of `stryker-karma-runner` so you get a wa

## Configuring

You can either configure the karma test runner from the `stryker.conf.js` file or from the command line. This readme describes how to do it via the config file.
You can either configure the karma test runner from the `stryker.conf.js` file or from the command line.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can either configure the karma test runner using the command line or by providing a the stryker.conf.js file.

@@ -33,24 +30,25 @@ These are marked as `peerDependencies` of `stryker-karma-runner` so you get a wa

## Configuring

You can either configure the karma test runner from the `stryker.conf.js` file or from the command line. This readme describes how to do it via the config file.
You can either configure the karma test runner from the `stryker.conf.js` file or from the command line.
This README describes how to do use the `stryker.conf.js` config file.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This README describes how to use the stryker.conf.js config file.


### Load the plugin

In order to use the `stryker-karma-runner` it must me loaded in the stryker mutation testing framework via the stryker configuration.
Easiest is to *leave out* the `plugins` section from your config entirely. That way, all node_modules starting with `stryker-` will be loaded.
Easiest is to *not have a `plugins` section* from your config file. That way, all node_modules starting with `stryker-` will be loaded.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The easiest way to achieve this, is not have a plugins section in your config file. That way, all node_modules starting with stryker- will be loaded.


* Karma's `files` option will be used to configure the files in Stryker, you don't need to keep a list of files in sync in both `stryker.conf.js` and `karma.conf.js`.
* Karma's `exclude` option will be used to ignore files in Stryker (using `!` to ignore them)
* Other karma config will be copied to the `karmaConfig` option in stryker config. These will be used by the `stryker-karma-runner` during mutation testing.
* Other karma config will be copied to the `karmaConfig` option in Stryker config. They will be picked up by the `stryker-karma-runner` during mutation testing.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • All remaining karma configs will be ...

The following Karma config options cannot be overridden:

* `files`: The karma-runner will fill this based on the `files` and `mutate` configuration in the `stryker-conf.js` file (or your `karma.conf.js` file when using the *automatic setup*).
* `coverageReporter`: Stryker-karma-runner will use its own coverage reporter for the initial test run and disabled it for testing the mutants.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

coverageReporter: For the initial test run, the stryker-karma-runner will use its own coverage reporter. For testing the mutants, however, it will be disabled.

@@ -152,8 +152,9 @@ See [http://stryker-mutator.github.io](http://stryker-mutator.github.io) for mor

### Debugging

By default, karma logging will be swallowed.
Set log level to `trace` in `stryker.conf.js` to see all the karma output.
As Stryker runs karma in it's own process, it's logging output will be consumed Stryker.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[...] will be consumed by Stryker.[...]

Copy link
Contributor

@philippw philippw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some more nitpicks

@simondel
Copy link
Member

I'll implement your review @philippw, thanks!

@simondel simondel merged commit 3141e4d into master Dec 30, 2016
@simondel simondel deleted the docs-automatic-setup branch December 30, 2016 11:04
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants